![](https://gamedevjs.com/wp-content/uploads/2024/06/city-in-a-abottle-728x410.png)
Created by Frank Force (JS Gamedev Summit 2023 speaker, minimal Bytebeat album author, and LittleJS Game Jam organizer among many other things), City in a Bottle is a tiny raycasting engine and city generator that fits in a standalone 256 byte html file.
This is the FULL source code:
<canvas style=width:99% id=c onclick=setInterval('for(c.width=w=99,++t,i=6e3;i--;c.getContext`2d`.fillRect(i%w,i/w|0,1-d*Z/w+s,1))for(a=i%w/50-1,s=b=1-i/4e3,X=t,Y=Z=d=1;++Z<w&(Y<6-(32<Z&27<X%w&&X/9^Z/8)*8%46||d|(s=(X&Y&Z)%3/Z,a=b=1,d=Z/w));Y-=b)X+=a',t=9)>
You can read the Making Of blog post from the author himself and see it in action in this tweet. There’s also a HD version you can view on Shadertoy.
HTML5 Game Developer, Enclave Games indie studio founder, js13kGames competition creator and Gamedev.js Weekly newsletter publisher. Mozilla Tech Speaker, Gamedev.js community firestarter. Organizes meetups / workshops / hackathons in Poland, passionate about new, Open Web technologies, excited about WebXR and PWAs. Likes eating sushi and playing Neuroshima Hex.